package session2

import (
	"gitee.com/chejiangyi/bsfgo/core/base2"
	"github.com/gin-contrib/sessions"
)

// SessionProxy 封装gin session操作
type SessionProxy struct {
	session sessions.Session
}

// Set 设置session值（链式调用）
func (sp *SessionProxy) Set(key string, value interface{}) *SessionProxy {
	sp.session.Set(key, value)
	return sp
}

// Get 获取session值
func (sp *SessionProxy) Get(key string) interface{} {
	return sp.session.Get(key)
}

// Delete 删除session值（链式调用）
func (sp *SessionProxy) Delete(key string) *SessionProxy {
	sp.session.Delete(key)
	return sp
}

// Save 保存session变更
func (sp *SessionProxy) Save() {
	if err := sp.session.Save(); err != nil {
		panic(base2.NewBsfError2("session2 保存异常", err))
	}
}

// Clear 清空session（链式调用）
func (sp *SessionProxy) Clear() *SessionProxy {
	sp.session.Clear()
	return sp
}
